home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 7.6 KB | 265 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: TblCmds.h
- // Release Version: $ ODF 1 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef COMMANDS_H
- #define COMMANDS_H
-
- #ifndef CELL_H
- #include "Cell.h"
- #endif
-
- // ----- Framework Includes -----
-
- #ifndef FWDRCMD_H
- #include "FWDrCmd.h"
- #endif
-
- #ifndef FWCLPCMD_H
- #include "FWClpCmd.h"
- #endif
-
- #ifndef FWINSCMD_H
- #include "FWInsCmd.h"
- #endif
-
- //========================================================================================
- // Forward class declarations
- //========================================================================================
-
- class CTableFrame;
- class CTablePart;
- class FW_CPresentation;
- class CTableSelection;
- class CTableProxy;
- class CTableLinkSource;
- class CTableLink;
- class CTableContent;
-
- //========================================================================================
- // class CCellDragCommand
- //========================================================================================
-
- class CCellDragCommand : public FW_CDragCommand
- {
- public:
-
- FW_DECLARE_AUTO(CCellDragCommand)
-
- CCellDragCommand(Environment* ev,
- CTableContent* tableContent,
- FW_CFrame* frame,
- CTableSelection* selection);
-
- virtual ~ CCellDragCommand();
-
- // --- FW_CCommand overrides for Undo/Redo ---
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
- virtual void SaveUndoState(Environment* ev); // Override
- virtual void FreeUndoState(Environment* ev); // Override
-
- private:
- CTableContent* fTableContent;
- CTableSelection* fTableSelection;
- CTableProxy* fSavedProxy; // saved selection for redo
- CCell fDragCell;
- };
-
- //========================================================================================
- // class CCellDropCommand
- //========================================================================================
-
- class CCellDropCommand : public FW_CDropCommand
- {
- public:
-
- FW_DECLARE_AUTO(CCellDropCommand)
-
- CCellDropCommand(Environment* ev,
- CTablePart* itsPart,
- CTableContent* tableContent,
- CTableFrame* frame,
- ODDragItemIterator* dropInfo,
- ODFacet* odFacet,
- const FW_CPoint& dropPoint,
- const CCell& dropCell,
- const CCell& draggedCell);
-
- virtual ~ CCellDropCommand();
-
- // --- FW_CDropCommand overrides
- virtual FW_Boolean DoDrop(Environment* ev,
- ODStorageUnit* dropSU,
- const FW_CPoint& mouseDownOffset,
- const FW_CPoint& dropPoint,
- FW_Boolean isDropMove,
- short itemNumber);
- virtual FW_Boolean DoDroppedInSameFrame(Environment* ev,
- ODStorageUnit* dropSU,
- const FW_CPoint& mouseDownOffset,
- const FW_CPoint& dropPoint);
-
- // --- FW_CCommand overrides for Undo/Redo ---
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
- virtual void SaveRedoState(Environment* ev); // Override
- virtual void FreeRedoState(Environment* ev); // Override
-
- private:
- CTablePart* fTablePart;
- CTableContent* fTableContent;
- CTableFrame* fTableFrame;
- CCell fDropCell;
- CCell fDraggedCell;
- CTableProxy* fSavedProxy; // saved selection for undo/redo
- };
-
- //========================================================================================
- // class CTableInsertCommand
- //========================================================================================
-
- class CTableInsertCommand : public FW_CInsertCommand
- {
- public:
-
- FW_DECLARE_AUTO(CTableInsertCommand)
-
- CTableInsertCommand(Environment* ev,
- FW_CEmbeddingFrame* frame,
- const FW_PFileSpecification& fileSpec,
- CTablePart* itsPart,
- const CCell& insertCell);
- virtual ~CTableInsertCommand();
-
- // --- FW_CCommand overrides
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
- virtual void CommitUndone(Environment* ev); // Override
- virtual void SaveRedoState(Environment* ev); // Override
-
- private:
- CTablePart* fTablePart;
- CTableContent* fTableContent;
- CTableProxy* fInsertedProxy; // saved proxy for Redo
- CCell fInsertCell;
- };
-
- //========================================================================================
- // CLASS CTableEditCommand
- //========================================================================================
-
- class CTableEditCommand : public FW_CClipboardCommand
- {
- //----------------------------------------------------------------------------------------
- // Initialization/Destruction
- //
- public:
-
- FW_DECLARE_AUTO(CTableEditCommand)
-
- CTableEditCommand(Environment* ev,
- ODCommandID id,
- CTablePart* itsPart,
- CTableContent* tableContent,
- FW_CFrame* frame,
- CTableSelection* selection);
-
- virtual ~ CTableEditCommand();
-
- //----------------------------------------------------------------------------------------
- // FW_CCommand overrides for Undo/Redo
- //
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
- virtual void SaveUndoState(Environment* ev); // Override
- virtual void SaveRedoState(Environment* ev); // Override
- virtual void FreeUndoState(Environment* ev); // Override
- virtual void FreeRedoState(Environment* ev); // Override
-
- //----------------------------------------------------------------------------------------
- // Table-specific
- //
- //---- Undo PasteAs support ----
- void UndoPasteAs(Environment* ev);
- void RedoPasteAs(Environment* ev);
-
- private:
- void SaveSelection(Environment* ev);
- void RemoveSelection(Environment* ev);
- void RestoreSelection(Environment* ev);
- void DeleteSavedProxy(Environment* ev);
-
- FW_Boolean WasLinkCreated(Environment* ev);
- //----------------------------------------------------------------------------------------
- // Data Members
- //
- private:
- CTablePart* fTablePart;
- CTableContent* fTableContent;
- CTableSelection* fTableSelection;
- CTableProxy* fSavedProxy; // saved selection for undo/redo
- CCell fPasteAsCell; // saved cell for Undo PasteAs
- };
-
- //========================================================================================
- // CLASS CBreakLinkSourceCommand - break a source link (undoable)
- //========================================================================================
-
- class CBreakLinkSourceCommand : public FW_CCommand
- {
- public:
-
- FW_DECLARE_AUTO(CBreakLinkSourceCommand)
-
- CBreakLinkSourceCommand(Environment* ev,
- FW_CFrame* frame,
- CTableLinkSource* linkSource);
-
- virtual ~CBreakLinkSourceCommand();
-
- virtual void DoIt(Environment* ev); // Override
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
-
- virtual void CommitDone(Environment* ev); // Override
-
- private:
- CTableLinkSource* fLinkSource; // source link to be broken
- };
-
-
- //========================================================================================
- // CLASS CBreakLinkCommand - break a destination link (undoable)
- //========================================================================================
-
- class CBreakLinkCommand : public FW_CCommand
- {
- public:
-
- FW_DECLARE_AUTO(CBreakLinkCommand)
-
- CBreakLinkCommand(Environment* ev,
- FW_CFrame* frame,
- CTableLink* linkDestination);
-
- virtual ~CBreakLinkCommand();
-
- virtual void DoIt(Environment* ev); // Override
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
-
- virtual void CommitDone(Environment* ev); // Override
-
- private:
- CTableLink* fLink; // destination link to be broken
- };
-
-
- #endif
-